MySql 中文文档 您所在的位置:网站首页 library init MySql 中文文档

MySql 中文文档

#MySql 中文文档| 来源: 网络整理| 查看: 265

int mysql_library_init(int argc, char **argv, char **groups)

Description

在调用任何其他 MySQL 函数之前,无论您的应用程序是常规 Client 端程序还是使用嵌入式服务器,都请调用此函数以初始化 MySQLClient 端库。如果应用程序使用嵌入式服务器,则此调用将启动服务器并初始化服务器使用的所有子系统(mysys,InnoDB等)。

Note

为了避免在使用库完成应用程序后发生内存泄漏(例如,在关闭与服务器的连接之后),请确保显式调用mysql_library_end()。这样可以执行内存 Management 以清理和释放库使用的资源。参见第 27.7.6.40 节“ mysql_library_end()”。

应用程序是作为常规 Client 端运行还是使用嵌入式服务器的选择取决于您在链接时使用libmysqlclient还是libmysqld库来生成最终的可执行文件。有关更多信息,请参见第 27.7.5 节“ C API 函数概述”。

在非多线程环境中,可以省略对mysql_library_init()的调用,因为mysql_init()将根据需要自动调用它。但是,mysql_library_init()在多线程环境中不是线程安全的,因此mysql_init()也不是,它调用mysql_library_init()。无论是调用mysql_library_init()还是间接通过mysql_init(),都必须在生成任何线程之前调用mysql_library_init(),或者使用 Mutex 来保护该调用。在进行任何其他 Client 端库调用之前,请执行此操作。

argc和argv参数类似于main()的参数,并允许将选项传递给嵌入式服务器。为了方便起见,如果没有服务器的命令行参数,则argc可以是0(零)。对于仅用作常规(非嵌入式)Client 端的应用程序,这是常见情况,并且该调用通常写为mysql_library_init(0,NULL,NULL)。

#include #include int main(void) { if (mysql_library_init(0, NULL, NULL)) { fprintf(stderr, "could not initialize MySQL client library\n"); exit(1); } /* Use any MySQL API functions here */ mysql_library_end(); return EXIT_SUCCESS; }

当要传递参数(argc大于0)时,argv的第一个元素将被忽略(通常包含程序名称)。 mysql_library_init()复制参数,因此可以安全地在调用后销毁argv或groups。

对于嵌入式应用程序,如果要连接到外部服务器而不启动嵌入式服务器,则必须为argc指定一个负值。

groups参数是一个字符串数组,用于指示要从中读取选项的选项文件中的组。参见第 4.2.2.2 节“使用选项文件”。在数组NULL中进行最后的 Importing。为了方便起见,如果groups参数本身是NULL,则默认使用[server]和[embedded]组。

#include #include static char *server_args[] = { "this_program", /* this string is not used */ "--datadir=.", "--key_buffer_size=32M" }; static char *server_groups[] = { "embedded", "server", "this_program_SERVER", (char *)NULL }; int main(void) { if (mysql_library_init(sizeof(server_args) / sizeof(char *), server_args, server_groups)) { fprintf(stderr, "could not initialize MySQL client library\n"); exit(1); } /* Use any MySQL API functions here */ mysql_library_end(); return EXIT_SUCCESS; } Return Values

零成功。如果发生错误,则为非零值。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有